#include <cstdio>
#include <iostream>
using namespace std;
long long dp[30][2][2];
int l,r;
long long solve(int p,bool liml,bool limr)
{
    if(p==-1)
        return 1;
    if(dp[p][liml][limr]!=-1)
        return dp[p][liml][limr];
    dp[p][liml][limr]=0;
    if(!(liml&&(l&(1<<p))))
        dp[p][liml][limr]+=solve(p-1,liml&&((l>>p)&1)==0,limr&&((r>>p)&1)==0);
    if(!(liml&&(l&(1<<p)))&&!(limr&&!(r&(1<<p))))
        dp[p][liml][limr]+=solve(p-1,liml&&((l>>p)&1)==0,limr&&((r>>p)&1)==1);
    if(!(limr&&!(r&(1<<p))))
        dp[p][liml][limr]+=solve(p-1,liml&&((l>>p)&1)==1,limr&&((r>>p)&1)==1);
    return dp[p][liml][limr];
}
int main()
{
	freopen("comb.in","r",stdin);
	freopen("comb.out","w",stdout);
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
    int q;
    for(int i=0;i<30;i++)
        for(int j=0;j<2;j++)
            for(int k=0;k<2;k++)
                dp[i][j][k]=-1;
    cin>>q;
    while(q--)
    {
        cin>>l>>r;
        for(int i=0;i<30;i++)
            for(int j=0;j<2;j++)
                for(int k=0;k<2;k++)
                    if(j||k)
                        dp[i][j][k]=-1;
        cout<<solve(29,true,true)<<"\n";
    }
    return 0;
}
